home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / string / RCS / strlen.c,v < prev    next >
Text File  |  1989-03-22  |  3KB  |  146 lines

  1. head     1.4;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.4
  10. date     89.03.22.16.07.00;  author rab;  state Exp;
  11. branches ;
  12. next     1.3;
  13.  
  14. 1.3
  15. date     88.07.02.14.33.08;  author ouster;  state Exp;
  16. branches ;
  17. next     1.2;
  18.  
  19. 1.2
  20. date     88.04.25.20.48.18;  author ouster;  state Exp;
  21. branches ;
  22. next     1.1;
  23.  
  24. 1.1
  25. date     88.04.25.13.25.47;  author ouster;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29.  
  30. desc
  31. @@
  32.  
  33.  
  34. 1.4
  35. log
  36. @*** empty log message ***
  37. @
  38. text
  39. @/* 
  40.  * strlen.c --
  41.  *
  42.  *    Source code for the "strlen" library routine.
  43.  *
  44.  * Copyright 1988 Regents of the University of California
  45.  * Permission to use, copy, modify, and distribute this
  46.  * software and its documentation for any purpose and without
  47.  * fee is hereby granted, provided that the above copyright
  48.  * notice appear in all copies.  The University of California
  49.  * makes no representations about the suitability of this
  50.  * software for any purpose.  It is provided "as is" without
  51.  * express or implied warranty.
  52.  */
  53.  
  54. #ifndef lint
  55. static char rcsid[] = "$Header: /sprite/src/lib/c/string/RCS/strlen.c,v 1.3 88/07/02 14:33:08 ouster Exp Locker: rab $ SPRITE (Berkeley)";
  56. #endif /* not lint */
  57.  
  58. #include <string.h>
  59.  
  60. /*
  61.  *----------------------------------------------------------------------
  62.  *
  63.  * strlen --
  64.  *
  65.  *    Count the number of characters in a string.
  66.  *
  67.  * Results:
  68.  *    The return value is the number of characters in the
  69.  *    string, not including the terminating zero byte.
  70.  *
  71.  * Side effects:
  72.  *    None.
  73.  *
  74.  *----------------------------------------------------------------------
  75.  */
  76.  
  77. int
  78. strlen(string)
  79.     char *string;        /* String whose length is wanted. */
  80. {
  81.     register char *p = string;
  82.  
  83.     while (1) {
  84.     if (p[0] == 0) {
  85.         return p - string;
  86.     }
  87.     if (p[1] == 0) {
  88.         return p + 1 - string;
  89.     }
  90.     if (p[2] == 0) {
  91.         return p + 2 - string;
  92.     }
  93.     if (p[3] == 0) {
  94.         return p + 3 - string;
  95.     }
  96.     p += 4;
  97.     }
  98. }
  99. @
  100.  
  101.  
  102. 1.3
  103. log
  104. @Lint cleanup.
  105. @
  106. text
  107. @d17 4
  108. a20 2
  109. static char rcsid[] = "$Header: strlen.c,v 1.2 88/04/25 20:48:18 ouster Exp $ SPRITE (Berkeley)";
  110. #endif not lint
  111. @
  112.  
  113.  
  114. 1.2
  115. log
  116. @Modified slightly to be fast with both RISC and non-RISC machines.
  117. @
  118. text
  119. @d17 1
  120. a17 1
  121. static char rcsid[] = "$Header: strlen.c,v 1.1 88/04/25 13:25:47 ouster Exp $ SPRITE (Berkeley)";
  122. d43 1
  123. a43 1
  124.     do {
  125. d57 1
  126. a57 1
  127.     } while (1);
  128. @
  129.  
  130.  
  131. 1.1
  132. log
  133. @Initial revision
  134. @
  135. text
  136. @d17 1
  137. a17 1
  138. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  139. d43 15
  140. a57 4
  141.     while (*p++ != 0) {
  142.     /* Null loop body */
  143.     }
  144.     return (p - string - 1);
  145. @
  146.